home *** CD-ROM | disk | FTP | other *** search
- PROGRAM Set_Time; (* read d:Time.tmp and set system time *)
-
- TYPE string80=string[80];
- register=RECORD
- ax,bx,cx,dx,bp,si,di,ds,es,flags :integer;
- END;
-
- VAR t :string80;
- mt :ARRAY[1..12] OF string[3];
- a :string[3];
- c :char;
- f :text;
- n :integer;
- day,month,year :integer;
- hour,minute: integer;
-
- FUNCTION hacklead(a :string80) :string80;
- VAR n :integer;
-
- begin;
- while a[1]=' ' do delete(a,1,1);
- hacklead:=a;
- end;
-
- FUNCTION number12(a:string80) :integer;
- VAR n,m :integer;
- begin;
- m:=0;
- for n:=1 to 12 do
- begin;
- if mt[n]=a then m:=n;
- end;
- number12:=m;
- end;
-
- PROCEDURE set_time(h,m :integer);
- VAR reg :register;
- BEGIN;
- WITH reg DO BEGIN
- ax:=$2D00; (* System call: set time *)
- cx:=256 * h + m ;
- dx:=0;
- msdos(reg);
- END;
- END;
-
- PROCEDURE set_date(d,m,y :integer);
- VAR reg :register;
- BEGIN;
- WITH reg DO BEGIN
- ax:=$2B00; (* System call: set date *)
- cx:=y + 1900 ;
- dx:=m * 256 + d ;
- msdos(reg);
- END;
- END;
-
- begin;
- mt[1]:='Jan'; mt[2]:='Feb'; mt[3]:='Mar'; mt[4]:='Apr';
- mt[5]:='May'; mt[6]:='Jun'; mt[7]:='Jul'; mt[8]:='Aug';
- mt[9]:='Sep'; mt[10]:='Oct'; mt[11]:='Nov'; mt[12]:='Dec';
-
- assign(f,'d:Time1.tmp'); reset(f);
- readln(f,t);
- close(f); erase(f);
- t:=hacklead(t); n:=pos(' ',t); delete(t,1,n);
- a:=copy(t,1,2); val(a,day,n);
- a:=copy(t,4,3); month:=number12(a);
- a:=copy(t,8,2); val(a,year,n);
- a:=copy(t,11,2); val(a,hour,n);
- a:=copy(t,14,2); val(a,minute,n);
- writeln(t);
- writeln(day:5,month:5,year:5);
- writeln(hour:5,minute:5);
- Set_time(hour,minute); set_date(day,month,year);
- end.